// Copyright (C) ZHENG Zhong <heavyzheng nospam-at gmail D0T com>
// http://www.zhengzhong.net/
//
// $Id: sax.hpp 318 2009-03-02 14:03:21Z heavyzheng $
//

#ifndef ZZHENG_XML_SAX_HPP_20090122__
#define ZZHENG_XML_SAX_HPP_20090122__

#include <zzheng/xml/config.hpp>
#include <zzheng/xml/sax/exception.hpp>
#include <zzheng/xml/sax/types.hpp>
#include <zzheng/xml/sax/features.hpp>
#include <zzheng/xml/sax/attribute.hpp>
#include <zzheng/xml/sax/error_info.hpp>
#include <zzheng/xml/sax/handler_tag.hpp>
#include <zzheng/xml/sax/content_handler.hpp>
#include <zzheng/xml/sax/error_handler.hpp>


//
// underlying XML library includes and namespace alias...
//

// Checks the conditional compilation macros. By default, use libxml2.
#if !defined(ZZHENG_XML_USES_LIBXML2) \
 && !defined(ZZHENG_XML_USES_XERCES)  \
 && !defined(ZZHENG_XML_USES_MSXML)   \
 && !defined(ZZHENG_XML_USES_CUSTOMIZED_LIB)
#  define ZZHENG_XML_USES_LIBXML2
#endif


#if defined(ZZHENG_XML_HAS_LIBXML2) || defined(ZZHENG_XML_USES_LIBXML2)
#  include <zzheng/xml/sax/libxml2.hpp>
#endif // ZZHENG_XML_HAS_LIBXML2 || ZZHENG_XML_USES_LIBXML2

#if defined(ZZHENG_XML_HAS_XERCES) || defined(ZZHENG_XML_USES_XERCES)
#  include <zzheng/xml/sax/xerces.hpp>
#endif // ZZHENG_XML_HAS_XERCES || ZZHENG_XML_USES_XERCES

#if defined(ZZHENG_XML_HAS_MSXML) || defined(ZZHENG_XML_USES_MSXML)
#  include <zzheng/xml/sax/msxml.hpp>
#endif // ZZHENG_XML_HAS_MSXML || ZZHENG_XML_USES_MSXML


#if defined(ZZHENG_XML_USES_LIBXML2)
#  define ZZHENG_XML_SAX_IMPL_NS  libxml2_
#elif defined(ZZHENG_XML_USES_XERCES)
#  define ZZHENG_XML_SAX_IMPL_NS  xerces_
#elif defined(ZZHENG_XML_USES_MSXML)
#  define ZZHENG_XML_SAX_IMPL_NS  msxml_
#endif


namespace zzheng {
namespace xml {
namespace sax {

    typedef ZZHENG_XML_SAX_IMPL_NS::parser parser; //!< Typedef of the SAX parser.

} // namespace zzheng::xml::sax
} // namespace zzheng::xml
} // namespace zzheng


#ifdef ZZHENG_XML_SAX_IMPL_NS
#  undef ZZHENG_XML_SAX_IMPL_NS
#endif // ZZHENG_XML_SAX_IMPL_NS

#endif // ZZHENG_XML_SAX_HPP_20090122__



